In recent years, updating software of a computing device Over The Air (OTA) has become increasingly business critical. Software executed by a computing device includes application programs that are used to perform useful end-user functions, or system software that manages and integrates a computing device's capabilities, such as the operating system (OS). A Software Update (SU) is sometimes performed to provide an upgrade (e.g., introduce new features and/or functionalities) or to fix some issues in the application program (e.g., software problems). Such SU's are frequently provided OTA via a mobile network.
For example, a Mobile Service provider or carrier provides communication service to many customers. The customers may own different manufacturer models of computing devices that are compatible with their network. The computing devices may include portable handsets, smart-phones, tablet computers, personal digital assistants, or laptops, or even machine-machine interface devices. There are often campaigns to update the software OTA for a group of computing devices (e.g., a particular make and/or model). These SU campaigns may be initiated by the Service Provider or a third party software provider, collectively referred to herein as “provider.” Such updates typically occur in two stages: (1) download of the software through the carrier network, and (2) installation. The download may occur in the background without knowledge of the user of the computing device. For example, a remote server provides the SU to the computing device OTA. The SU is typically stored in the memory of the computing device. The subsequent installation typically involves some user acknowledgment and/or control of the installation through a user interface of the computing device.
Problems arise when an incorrect or defective SU is sent to a computing device having a particular make (e.g., manufacturer) and/or model. For example, some issues may have not been discovered during software testing that could negatively impact customers with particular computing device configuration. Historically, upon a provider learning of a potential problem, the approach was usually to remove the SU from continued distribution and simply wait for the consequences of distributing the potentially problematic SU. For example, the user of the computing device may report a computing device failure related to the SU, upon which the carrier may initiate a roll-back of the SU or different software to all devices, including those that currently function properly. In another example, instead of waiting for an SU failure report from the customer, the provider may notify users of affected devices that a potential problem exists and that the user should not install the SU or should initiate a roll-back. Such notifications may be ignored by the user, which may ultimately lead to malfunctioning computing devices. Even if a computing device is not adversely affected by the SU, the warning notification itself may generate negative publicity and an unsatisfactory customer experience. The provider often ends up replacing (the now malfunctioning) computing devices or is at least under pressure to cure the problem as soon as possible. Further, the provider may suffer from a tarnished brand image.
Hence, a need exists to provide a controlled SU over the air that is capable of silently removing a potentially problematic SU from targeted computing devices.